<?php
/**
 * 重庆柯一网络有限公司
 * 遵循MT协议，开源并可商业使用，没有任何限制
 * @Author:cqkyi
 * @Date: 2020/9/14 11:31
 * 官方惟一地址：www.cqkyi.com
 */

namespace app\common\service;

/**
 * Class RouterService
 * @package app\common\utils
 * @Author:cqkyi
 * @Des:前后分离路由的生成
 */

class RouterService
{


    /**
     * @param $list 数据
     * @param $pk
     * @param $pid 父级Id
     * @param $name 名称
     * @param string $child 是否有下级
     * @param int $root 默认父级ID
     * @return array 返回路由数据
     */
    public static function MakeRouter($list,$pk,$pid,$name,$child='children',$root=0){
        $tree=[];
        foreach ($list as $k=>$v){
            $hidden = true;
            if($v['visible']==0){
                $hidden = false;
            }
            $component='Layout';
            if($v['parent_id']!=0){
                $component = $v['component'];
            }
            $path = $v['path'];
            if($v['parent_id']==0){
                $path="/".$v['path'];
            }

            if($v[$pid]==$root){
                $node=[
                    'name'=>ucfirst($v['path']),
                    'path'=>$path,
                    'hidden'=>$hidden,
                    'component'=>$component,
                    'meta'=>[
                        'icon'=>$v['icon'],
                        'title'=>$v[$name]
                    ]

                   ];
                unset($list[$k]);
                if(!empty($list)){
                    $child=self::MakeRouter($list,$pk,$pid,$name,$child,$v[$pk]);
                    if(!empty($child)){
                        $node['alwaysShow']=true;
                        $node['children']=$child;
                        $node['redirect']='noRedirect';
                    }

                }

                $tree[]=$node;

            }
        }

        return $tree;
    }



}